import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class LawyerProxy implements InvocationHandler {

   private Object obj;

   public LawyerProxy(Object obj){
          this.obj=obj;

   }
    @Override
    //proxy是生成的代理对象；method是ZhangSan类的某个具体方法；args是ZhangSan类某个方法的具体入参，在方法反射调用时使用。
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        if(method.getName().equals("speak")){
            System.out.println("根据法律，打人犯法!") ;
            method.invoke(obj,args);    //反射
            System.out.println("他要赔偿!") ;
        }
        return null;
    }
}











